在 node 中管理静态资源文件与C#、JAVA 等语言不同,具体不同如下:
不存在web容器
nodejs 不像 apache 一样存在容器,nodejs 不存在容器的概念,都是通过路由来控制的,访问路径跟文件夹和文件名没有任何关系。
让 node.js 提供一个静态服务,都非常难!
也就是说,node.js中,如果看见一个网址是:1127.0.0.1:3000/fang,别再去想,一定有一个文件夹,叫做fang了。可能/fang的物理文件,是同目录的test.html
URL和真实物理文件,是没有关系的。URL是通过了Node的顶层路由设计,呈递某一个静态文件的。
简单的静态资源管理实现
由于 node 不存在web容器的概念,所以需要通过路由控制访问的路径文件,具体node是怎么做的呢?我们可以看看简单的实现:
1 | var http = require("http"); |
像 apache 这样的web容器里面,就封装了类似这样的实现,当然,它的实现比这样完善和复杂很多,还有考虑缓存啊,安全性等各种问题,以上就是node 管理静态资源文件的简单实现。
完~